import router from "@/router"
import {useBreadCrumb} from "@/store/breadCrumb"
import {usePermission} from "@/store/permission"
import NProgress from "nprogress"

//前置守卫
router.beforeEach(async (to,from)=>{
    //打开进度条
    NProgress.start()
    let permissStore=usePermission()
    
    // console.log(to)
    // console.log(from)
    //判断本地的sessionStorage中是否有token,如果有，啥也不干
    let token=sessionStorage.getItem('myx-token')
    if(!token){
        //如果没有
        //1.访问的不是登入页，强行跳转到登入页
        if(to.path !== '/login'){
            return {
                path:'/login'
            }
        }
    }else{
        //如果menulisst的长度是0，那么就要发起请求
        if(permissStore.menulist.length===0){
            //调用store中的action方法发起异步请求
           await permissStore.fetch_menulist()
           //废弃要进入的路由，重新进入动态添加的路由 
           return {
                ...to
            }
        }
    }
    //2.访问的是登入页，直接放行
})
//全局后置钩子

router.afterEach((to,from)=>{
    //关闭进度条
    NProgress.done()
    let breadCrumbStore=useBreadCrumb()
    breadCrumbStore.$patch(state=>{
        state.datas=to.matched
    })
})